$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Угнежђено гранање

У задацима који следе користи се угнежђено гранање (наредбе гранања су наведене унутар тела ширих наредби гранања).

Елементи програмског језика

Уколико је потребно извршити гранање на основу неколико међусобно искључујућих услова, то можемо да урадимо коришћењем кључне речи elif, која се у општем случају користи овако:

if uslov1:
   naredba1
elif uslov2:
   naredba2
elif uslov3:
   naredba3
...
else
   naredbak

Приликом извршавања ове наредбе проверавају се редом услови uslov1, uslov2 итд. све док се не наиђе на неки услов који је испуњен и чији се блок наредби извршава. Последња else ставка се извршава ако ниједан од услова није испуњен. Тај део је опцион и не мора се навести.

Поменимо једну важну појаву познату као висеће else (енг. dangling else). Уколико имамо угнежђено гранање облика:

if uslov1:
   if uslov2:
      naredba1
else:
   naredba2

лако се може погрешити у форматирању и добити нетачан резултат. Када желимо да се else ставка веже за прву if наредбу, писаћемо као што је горе наведено. Међутим, када нам је потребно да се else ставка веже за другу if наредбу, треба писати:

if uslov1:
   if uslov2:
      naredba1
   else
      naredba2